home *** CD-ROM | disk | FTP | other *** search
/ Skunkware 5 / Skunkware 5.iso / src / Tools / man2html-2.0.2 / examples / manlink < prev    next >
Text File  |  1995-06-18  |  2KB  |  106 lines

  1. #!/usr/local/bin/perl
  2.  
  3. select(STDOUT) ;
  4. $| = 1 ;
  5.  
  6.  
  7. &new_get_args ;
  8.  
  9. $arch       = $FORM{'architecture'} ;
  10. $section    = $FORM{'section'} ;
  11. $topic      = $FORM{'topic'} ;
  12. $filter     = "/usr/local/etc/httpd/htbin-post/man2html" ;
  13. $fflags     = "-title $topic -cgiurl http://hawkwind/htbin-post/manlink/architecture=$arch/section=\\\$section\\\$subsection/topic=\\\$title" ;
  14. $manflags   = "" ;
  15. $mancommand = "" ;
  16.  
  17.  
  18. if ($section =~ /Keyword/) {
  19.     $manflags = "-k" ;
  20.     $fflags  = " -k " ;
  21. }
  22. elsif ($section =~ /Section (\d\w?)/) {
  23.     $manflags = $1 ;
  24. }
  25.  
  26. if ($arch eq "HP") {
  27.     $fflags .= " -leftm 1 -topm 8";
  28.     $mancommand   = "man $manflags $topic";
  29. }
  30. else {
  31.     # must be a CONVEX for now
  32.     # this relies on the server's ability to remsh to pixel and do a man
  33.     # this will/would break whenever we switch over
  34.     $mancommand = "remsh imagine man $manflags $topic" ;
  35. }
  36.  
  37. print "Content-type: text/html\n\n" ;
  38.  
  39. open (MAN, "$mancommand 2> /dev/null |") || exit 1 ;
  40. open (FILTER, "| $filter $fflags >/tmp/foo 2> /dev/null") || exit 1 ;
  41.  
  42. if (eof(MAN)) {
  43.     print "<HTML>\n" ;
  44.     print "<HEAD>\n" ;
  45.     print "<TITLE>Man failed</TITLE>\n" ;
  46.     print "</HEAD>\n" ;
  47.     print "<BODY>\n" ;
  48.     print "<H1>man failed</H1>\n" ;
  49.     print "This probably indicates that the link that you clicked on does\n" ;
  50.     print "not exist as a man page.  Sorry.  It is an imperfect world.\n" ;
  51.     print "I can't stand it.  Sob!!!!<P>\n" ;
  52.     print "<P>\n" ;
  53.     close MAN ;
  54.     close FILTER ;
  55.     exit 1 ;
  56. }
  57.  
  58.  
  59. while (<MAN>) {
  60.     print FILTER ;
  61. }
  62.  
  63. close FILTER ;
  64. close MAN ;
  65.  
  66. open (OUT, "/tmp/foo") || exit 1 ;
  67. while (<OUT>) { 
  68.   print ;
  69. }
  70. close OUT ;
  71.  
  72.  
  73. sub new_get_args {
  74.     @args = split('/',$ARGV[0]);
  75.     foreach (@args) {
  76.       tr/+/ / ;
  77.       ($name, $value) = split(/=/, $_);
  78.       $FORM{$name} = $value ;
  79.     }
  80. }
  81.  
  82.  
  83.  
  84. sub future_get_args {
  85.  
  86.    if ($ENV{'REQUEST_METHOD'} eq 'POST')
  87.    {                          
  88.        read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
  89.  
  90.        # Split the name-value pairs
  91.        @pairs = split(/&/, $buffer);
  92.  
  93.        foreach $pair (@pairs)
  94.        {
  95.            ($name, $value) = split(/=/, $pair);
  96.            $value =~ tr/+/ /;
  97.            $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
  98.  
  99.            print "Setting $name to $value<P>";
  100.  
  101.            $FORM{$name} = $value;
  102.        }
  103.    }
  104. }
  105.  
  106.